package me.sdau.spider.manager.common.mapper;

import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 基础 Mapper
 * FIXME 特别注意，该接口不能被扫描到，否则会出错
 * @author zj
 * @date 2018/4/8 17:56
 */
public interface BaseMapper<T> {
    /**
     * 通过 ID 查找
     * @param id
     * @return
     */
    T getOne(Long id);

    /**
     * 查找所有
     * @return
     */
    List<T> findAll();

    /**
     * 根据条件查询
     * @return
     */
    List<T> findAll(T entity);

    /**
     * 插入一条数据
     * @param entity
     * @return
     */
    int insert(T entity);

    /**
     * 批量插入
     * @param lists
     * @return
     */
    int batchInsert(@Param("lists") List<T> lists);

    /**
     * 更新数据
     * @param entity
     * @return
     */
    int update(T entity);

    /**
     * 依据 id 删除
     * @param id
     * @return
     */
    int remove(Long id);
}
